package com.ldxiwxr.common.utils;

import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

import static com.ldxiwxr.common.constant.MedicineApiConstant.*;
import static com.ldxiwxr.common.constant.QRProductConstant.*;

/**
 * 二维码工具类
 *
 * @author SuBanxia
 */
public class QRApiUtils {
    /**
     * 生成二维码工具类
     *
     * @param type    二维码类型
     * @param size    二维码大小
     * @param content 内容
     * @return base64码
     */
    public static String QRProduct(String type, String size, String content) {
        //创建HashMap保存内容
        Map<String, Object> map = new HashMap<>();
        map.put("content", content);
        map.put("type", type);
        map.put("transparent", TRANSPARENT);
        map.put("size", size);
        map.put("fgcolor", QR_FG_COLOR);
        map.put("bggcolor", QR_BG_COLOR);
        map.put("level", LEVEL);

        //发送POST请求获取获取返回的对应的json对象
        try {
            String rspStr = HttpUtil.createPost(QR_API_HTTP)
                    .form(map)
                    .execute()
                    .body();
            //判断返回对象是否为空
            if (StringUtils.isEmpty(rspStr)) {
                return null;
            }
            //读取内容并将其封装成Dict对象
            JSONObject json = new JSONObject(rspStr);
            JSONObject res = json.getJSONObject("data");
            String base64 = res.getStr("codeimg_base64");
            //返回base64码
            return base64;
        } catch (Exception e) {
            e.printStackTrace();
        }
        //不执行成功
        return null;
    }
}